package IOStream.Exercise001;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * ClassName:Exercise002
 * Package:IOStream.Exercise
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/3/2-17:18
 * @Version:v1.0
 */
public class Exercise002 {
    /**
     * 文件加密
     * <p>
     * 为了保证文件的安全性,就需要对原始文件进行加密存储,在使用的时候在对其进行解密处理
     * 加密原理：
     * 对原始文件中的每一个字节数据进行更改,然后将更改以后的数据存储到新的文件中
     * 解密原理：
     * 读取加密之后的文件,按照加密的规则反向操作,变成原始文件
     * <p>
     * :异或(两边相同--false   两边不同--true)
     */

    public static void main(String[] args) throws IOException {
        //创建对象关联原始文件
        FileInputStream fis = new FileInputStream("E:\\IDER\\IDEAWorkCode\\IDEADemo\\src\\IOStream\\Exercise\\gril.jpg");
        //创建对象关联加密文件
        FileOutputStream fos = new FileOutputStream("E:\\IDER\\IDEAWorkCode\\IDEADemo\\src\\IOStream\\Exercise\\ency.jpg");
        //加密处理
        int b;
        while ((b = fis.read()) != -1) {
            fos.write(b ^ 10);
        }
        fos.close();
        fis.close();
    }
}
